#! /usr/bin/env python
# coding= utf-8

import os
import sys
import fileinput

DEBUG   = False
CONTROL = False

print "ADD Updater, version 1.7"


if (len(sys.argv) > 1):
    if (sys.argv[1] == "-v"): sys.exit()
    elif (sys.argv[1] == "-h"):
        print """Usage : Update.py [option]
-h     afficher l'aide
-v     afficher la version de l'updater
-V     afficher la version du programme"""
        sys.exit()
    elif (sys.argv[1] == "-V"):
        version = ""
        try:
            tmp = open("changelog.txt", 'r')
            if (DEBUG): print tmp
            version = ""
            for line in tmp:
                loc = line.find("version ")
                if (loc != -1):
                    version = line[loc + 8:-1]
                    break
            tmp.close()
        except IOError:
            print "Software version : 1.1 ou antérieure"
        else :
            print "Software version :", version
        sys.exit()

nom_fichier = "patch/changes.txt"

fichier = open(nom_fichier, 'r')

if(DEBUG): print fichier

line = fichier.readline()

log = open("changelog.txt.tmp", 'w')

print "Passage à la version ", line[7:-1]
log.write("Mise à jour vers la version " + line[7:])

line = fichier.readline()

resultat = 0

while (not line == ""):
    loc = line.rfind('/')
    if (DEBUG) : print loc
    line = line[0:]
    if (DEBUG) : print line[:-1]
    log.write("Mise à jour de " + line)
    command = ""
    command = "mv patch/" + line[loc+1:-1]
    if (line[0:11] == "Sorts-mage/"):
        command += "/*"
    command += " " + line[:-1]
    if (line[0:11] == "Sorts-mage/"):
        command += "/"
    if (CONTROL): print "commande : ", command
    resultat += os.system(command)
    if (line.rfind('.') == -1 and loc == -1): # C'est un script
        if (DEBUG): print "chmod u+x "+line[:-1]
        os.system("chmod u+x "+line[:-1])
    if (DEBUG): print resultat
    line = fichier.readline()

if (resultat == 0):
    fichier.close()
    os.system("rm -rf patch/*")
    os.system("./Compile clean")
    os.system("./Compile Prgm")
    log.write("Mise à jour terminée avec succès\n")
    print "Mise à jour terminée"
else:
    fichier.close()
    print "Problème lors de la mise à jour"
    log.write("Echec de la mise à jour\n")

precedent = open("changelog.txt", 'r')

for line in precedent:
    log.write(line)

precedent.close()
log.close()

os.system("mv changelog.txt.tmp changelog.txt")
    
    
    
